1. Field of the Invention
The present invention relates to video/audio compression processing, and, in particular, to computer systems designed to compress and transmit multiple video/audio bitstreams over shared communication channels.
2. Description of the Related Art
As the available bandwidth of communication channels gets larger as technology improves, the possibility exists to transmit multiple different bitstreams (e.g., corresponding to different video/audio applications, such as television programming, distributed interactive video games, web browsing, and/or e-mail) simultaneously over individual shared, high-bandwidth channels. Such transmission of multiple bitstreams over each shared communication channel may be implemented efficiently by employing a suitable statistical multiplexing scheme that controlsxe2x80x94at some levelxe2x80x94both (1) the compression processing by one or more video/audio encoders of the individual application streams into corresponding compressed bitstreams and (2) the transmission of data from those different compressed bitstreams over the shared communication channel. Statistical multiplexing can be defined as:
(a) the control required for allocation of bits in proportion to the complexity and importance of each application within the limits of control allowed by each encoder, such that:
(i) the aggregate instantaneous bit rate is less than or equal to the channel capacity;
(ii) the minimum quality of service (QoS) requirements for all applications are met; and
(iii) the quality is maximized for applications in the order of their importance; and
(b) the control required in pathological cases, where the aggregate instantaneous bit rate is greater than the channel capacity, to minimize the loss in QoS for as minimal a number of applications as possible.
To achieve these levels of control, statistical multiplexing takes into account the variations in bit rate of different applications when allocating transmission bandwidth.
Statistical multiplexing schemes often involve the implementation of a dynamic bandwidth manager that controls the allocation of bandwidth to the various applications in real time. Such bandwidth managers are able to monitor the real-time bit-rate demands of the different applications to control the transmission of data from those different applications over the shared communication channel.
For conventional applications, such as video/audio streaming of digital television programming, which involves the one-way transmission of a compressed bitstream from an application server to one or more remote users, the quality of service depends on the fidelity and uniformity of the video playback, where collectively high fidelity and high uniformity typical mean (1) uniform, full frame rates and (2) uniform high image quality both within each frame and between consecutive frames. For these applications, the end-to-end latency involved in the processing is of less importance. As such, the primary concern of bandwidth managers for conventional statistical multiplexing schemes involving conventional applications is to ensure that there will always be sufficient data in the receiver buffer at each user node to provide high fidelity, uniform video playback to each user.
High levels of latency, however, are not acceptable for all applications. Many interactive video/audio applications, such as video conferencing and distributed video games where two or more remotely located users compete against each other, require relatively low levels of latencyxe2x80x94in addition to high levels of uniformity and fidelityxe2x80x94for acceptable QoS levels. Moreover, in many multiplexing situations, different applications will have different latency requirements. Furthermore, the latency requirements of even some individual applications, such as web browsing, may vary over time, when the type of service changes during the application session. For all these situations, conventional computer systemsxe2x80x94even conventional computer systems designed for conventional statistical multiplexing schemesxe2x80x94will not provide acceptable QoS levels, because they do not take into account the different and varying levels of latency required by the different applications being multiplexed for transmission over a shared communication channel.
The present invention is directed to computer systems designed to support statistical multiplexing schemes that do take into account the corresponding latency requirements of different video/audio applications (in addition to other factors such as uniformity and fidelity of video playback) when managing the bandwidth of shared communication channels. According to embodiments of the present invention, the computer systems support statistical multiplexing that takes latency into account to provide (a) traffic control (i.e., the control of how the data for multiple compressed bitstreams is transmitted over each shared communication channel) as well as (b) some level of control over the actual compression processing used to generate those bitstreams for the different video/audio applications.
According to one embodiment, the present invention is a computer system, comprising (a) a plurality of encoding sub-systems, each encoding sub-system having (1) an input port configured to receive an input data stream; and (2) an output port configured to transmit a corresponding compressed bitstream generated by the encoder from the input data stream; and (b) a statistical multiplexing (stat-mux) sub-system having (1) a plurality of input ports, each input port configured directly to the output port of a corresponding encoding sub-system to receive the corresponding compressed bitstream; and (2) an output port configured to transmit data generated as a result of the stat-mux sub-system performing statistical multiplexing on the plurality of compressed bitstreams.